<?php

/**
 * CodeRS - Atviras kodas Lietuvai
 * Copyright (C) 2007 CodeRS www.coders.lt info@coders.lt
 * MightMedia TVS
 * kalendorius.php - kalendorius. Pagrindinės šventės ir vartotojų gimtadieniai (BLOKAS)
 * 
 * This program is free software; you can redistribute it and/or
 * modify it under the terms of the GNU General Public License
 * as published by the Free Software Foundation; either version 2
 * of the License, or (at your option) any later version.
 * 
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 * 
 * You should have received a copy of the GNU General Public License
 * along with this program; if not, write to the Free Software
 * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
 * 
 * 
 * Ši programa yra laisva. Jūs galite ją platinti ir/arba modifikuoti
 * remdamiesi Free Software Foundation paskelbtomis GNU Bendrosios
 * Viešosios licencijos sąlygomis: 2 licencijos versija, arba (savo
 * nuožiūra) bet kuria vėlesne versija.
 * 
 * Ši programa platinama su viltimi, kad ji bus naudinga, bet BE JOKIOS
 * GARANTIJOS; be jokios numanomos PERKAMUMO ar TINKAMUMO KONKRETIEMS
 * TIKSLAMS garantijos. Žiūrėkite GNU Bendrąją Viešąją licenciją norėdami
 * sužinoti smulkmenas.
 * 
 * Jūs turėjote kartu su šia programa gauti ir GNU Bendrosios Viešosios
 * licencijos kopija; jei ne - rašykite Free Software Foundation, Inc., 59
 * Temple Place - Suite 330, Boston, MA 02111-1307, USA.
**/

if ($_SERVER['PHP_SELF'] == __FILE__) { header('location: ?'); exit(); }

// Surašome šventes, jos bus paryškintos kalendoriuje.
// Datas rašykite be nulių pvz: 3-9 (kovo devinta)
$sventes = array(

//Valstybinės šventės
"1-1"		=> array("Naujieji metai","Lietuvos vėliavos diena"),
"1-16"	=> array("Lietuvos Valstybės atkūrimo diena"),
"2-16"	=> array("Lietuvos valstybės atkūrimo diena"),
"3-11"	=> array("Lietuvos nepriklausomybės atkūrimo diena"),
"5-1"		=> array("Tarptautinė darbo diena"),
"5-4"		=> array("Motinos diena"),
"6-24"	=> array("Rasos diena","Jonininės"),
"7-6"		=> array("Valstybės diena","Lietuvos karaliaus Mindaugo karūnavimo diena"),
"8-15"	=> array("Žolinės"),
"11-1"	=> array("Visų šventųjų diena"),
"12-25"	=> array("Kalėdos"),
"12-26"	=> array("Kalėdos (antra diena)"),

// Lietuvos Respublikos atmintinos dienos
"8-23"	=> array("Juodojo kaspino diena","Baltijos kelio diena"),
"8-31"	=> array("Laisvės diena"),
"9-1"		=> array("Mokslo ir žinių diena"),
"9-8"		=> array("Šilinė (Švč. Mergelės Marijos gimimo diena)","Vytauto Didžiojo karūnavimo diena"),

// Kitos šventės
"3-18"	=> array("FDisk gimtadienis"),
"11-2"	=> array("Vėlinės"),
"12-24"	=> array("Kūčios"),
"12-25"	=> array("Kalėdos"),
"12-26"	=> array("Antra Kalėdų diena")
);

$result = $cache->get('block', 'kalendorius');
if ($result != false) {
	echo $result;
} else {
	ob_start();
	// Ieškom kieno gimtadieniai
	$sql=$db->uzklausa("SELECT user_id,username,gimtadienis,DAY(gimtadienis) AS diena FROM `".T_USERS."` WHERE MONTH(gimtadienis)=MONTH(NOW())");
	
if ($db->rows($sql)>0) {
		while ($row = $db->masyvas($sql)) {
			$sventes[date('n')."-".$row['diena']][] = "<b>".$row['username']."</b> Gimtadienis. ".(amzius($row['gimtadienis'])+1)."m.";
		}
	}

	echo style_block("Kalendorius", kalendorius($sventes));

	$result = ob_get_contents();
	ob_end_clean();

	$nextday = getdate(time());
	$nextday = mktime(0,0,0,$nextday['mon'],$nextday['mday'],$nextday['year']) + (60 * 60 * 24);
	
	$cache->set('block', 'kalendorius', $result, $nextday);// Po 24 h būtina atnaujinti cache
	
	echo $result;
}

function kalendorius($sventes) {
	// Gaunam dabartinę datą ir laiką
	$time_dabar = getdate(time());

	// Kada prasideda pirma mėnesio diena
	$time_pradzia = getdate(mktime(0,0,0, $time_dabar['mon'], 1, $time_dabar['year']));

	// Kiek šiame mėnesyje yra dienų
	$time_dienu = date("t");

	// Verčiam mėnesio pavadinimus
	$ieskom = array("December","January","February","March","April","June","July","August","September","October","November");
	$keiciam = array("Gruodis","Sausis","Vasaris","Kovas","Balandis","Birželis","Liepa","Rugpjūtis","Rugsėjis","Spalis","Lapkritis");
	$time_dabar['month'] = str_replace($ieskom,$keiciam,$time_dabar['month']);

	// Verciam savaitės dienas
	$ieskom = array("Monday","Tuesday","Wednesday","Thursday","Friday","Saturday","Sunday");
	$keiciam = array("Pirmadienis","Antradienis","Trečiadienis","Ketvirtadienis","Penktadienis","Šeštadienis","Sekmadienis");
	$time_dabar['weekday'] = str_replace($ieskom,$keiciam,$time_dabar['weekday']);

	// Formuojame kalendoriaus lentelę
	$return = '<table width="100%" border="0" cellpadding="2" cellspacing="0">
	  <tr>
		 <th colspan="7" style="font-weight:normal">'.$time_dabar['year']. " ".$time_dabar['month'].' '.$time_dabar['mday'].'d. <br />'.$time_dabar['weekday'].' - '.$time_dabar['yday'].' Metų diena</th>
	  </tr>
	  <tr style="background-color:#CCCCCC">
		 <th>P</th>
		 <th>A</th>
		 <th>T</th>
		 <th>K</th>
		 <th>P</th>
		 <th>Š</th>
		 <th>S</th>
	  </tr>
	';
	$a=0;$b=0;
	for ($i = 0;$i <= 4; $i++) {	// Sukam tiek kartų kiek savaičių mėnesyje = max 5
		$return .= "  <tr align='center'>\n";

		// Sukam ciklą tiek kartų kiek dienų savaitėje = 7
		for ($j = 1; $j <= 7; $j++) {

			// Skaičiuojam kiek kartų prasisuko visi ciklai
			$a++;

			// Jei priėjom šio mėnesio pirmą dieną, pradedam braižyti kalendoriaus dienas
			$time_num = ($a >= $time_pradzia['wday'] ? ++$b : false);

			$return .= "\t<td style='border-top:1px solid #999999;";
			// Jei diena yra šiandiena
			if ($time_dabar['mday'] == $time_num) $return .= "font-weight:bold;border:1px solid red;";
			// Jei tai yra savaitgalis
			if ($j == 6 || $j == 7) $return .= " background-color:#E2E2E2;";

			// Jei diena turi švenčių
			if ($time_num != false) {
				$kint = $time_dabar['mon']."-".$time_num;
				$svente = svente($sventes, $kint);
			}
			if (!empty($svente)) { $return .= " color:red;cursor: pointer;' title=\"header=[Šią dieną švenčiame] body=[<br/>".$svente."<br/><br/>] cssbody=[sarasas] cssheader=[title] fade=[on]\">"; } else { $return .= "'>"; }

			// Tikrinam ar mėnesio dienos nesibaigė, kitu atveju atspauzdinam tarpą
			if ($time_num <= $time_dienu) { $return .= $time_num; } else { $return .= "&nbsp;"; }

			$return .= "</td>\n";
		}
		$return .= "  </tr>\n";
	}

	// Atspauzdinam kalendorių ir užbaigiam lentelę
	$return .= "</table>";
	return $return;
}

function svente($sventes, $diena="") {
	$returna = "";
	if (empty($diena)) { $diena = date('n-j'); }// Gauname šiandienos (mėnesis-diena)

	// Tikriname ar švenčių masyve nurodyta diena egzistuoja
	if (array_key_exists($diena, $sventes)) {
		foreach ($sventes[$diena] as $val) {
			if (empty($return)) $returna .= $val;	// Jei išvedam šventę pirmą kartą
			else $returna .= ", <br />".$val;	// Išvedame daugiau nei vieną šventę, atskiriame kableliais
		}
	}
	return $returna;
}
?>
